<?php
/*
 * Copyright (c) 2017-2025 Tencent. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
namespace TencentCloud\Cynosdb\V20190107\Models;
use TencentCloud\Common\AbstractModel;

/**
 * DescribeServerlessStrategy response structure.
 *
 * @method integer getAutoPauseDelay() Obtain Specifies how long (in seconds) the auto-pause is triggered when the cpu load is 0.
 * @method void setAutoPauseDelay(integer $AutoPauseDelay) Set Specifies how long (in seconds) the auto-pause is triggered when the cpu load is 0.
 * @method integer getAutoScaleUpDelay() Obtain Specifies how long (in seconds) the auto-scaling is triggered when the cpu load exceeds the number of cores in the current specifications.
 * @method void setAutoScaleUpDelay(integer $AutoScaleUpDelay) Set Specifies how long (in seconds) the auto-scaling is triggered when the cpu load exceeds the number of cores in the current specifications.
 * @method integer getAutoScaleDownDelay() Obtain Specifies how long (in seconds) the system will wait for the cpu load to be lower than the number of cores in the lower specification before triggering automatic scaling down.
 * @method void setAutoScaleDownDelay(integer $AutoScaleDownDelay) Set Specifies how long (in seconds) the system will wait for the cpu load to be lower than the number of cores in the lower specification before triggering automatic scaling down.
 * @method string getAutoPause() Obtain Whether to automatically pause. valid values:.
yes
no
 * @method void setAutoPause(string $AutoPause) Set Whether to automatically pause. valid values:.
yes
no
 * @method string getAutoScaleUp() Obtain Specifies whether the cluster allows upward scaling. valid values: <li>yes</li><li>no</li>.
 * @method void setAutoScaleUp(string $AutoScaleUp) Set Specifies whether the cluster allows upward scaling. valid values: <li>yes</li><li>no</li>.
 * @method string getAutoScaleDown() Obtain Whether the cluster is allowed to scale down. valid values: <li>yes</li><li>no</li>.
 * @method void setAutoScaleDown(string $AutoScaleDown) Set Whether the cluster is allowed to scale down. valid values: <li>yes</li><li>no</li>.
 * @method string getRequestId() Obtain The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
 * @method void setRequestId(string $RequestId) Set The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
 */
class DescribeServerlessStrategyResponse extends AbstractModel
{
    /**
     * @var integer Specifies how long (in seconds) the auto-pause is triggered when the cpu load is 0.
     */
    public $AutoPauseDelay;

    /**
     * @var integer Specifies how long (in seconds) the auto-scaling is triggered when the cpu load exceeds the number of cores in the current specifications.
     */
    public $AutoScaleUpDelay;

    /**
     * @var integer Specifies how long (in seconds) the system will wait for the cpu load to be lower than the number of cores in the lower specification before triggering automatic scaling down.
     */
    public $AutoScaleDownDelay;

    /**
     * @var string Whether to automatically pause. valid values:.
yes
no
     */
    public $AutoPause;

    /**
     * @var string Specifies whether the cluster allows upward scaling. valid values: <li>yes</li><li>no</li>.
     */
    public $AutoScaleUp;

    /**
     * @var string Whether the cluster is allowed to scale down. valid values: <li>yes</li><li>no</li>.
     */
    public $AutoScaleDown;

    /**
     * @var string The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
     */
    public $RequestId;

    /**
     * @param integer $AutoPauseDelay Specifies how long (in seconds) the auto-pause is triggered when the cpu load is 0.
     * @param integer $AutoScaleUpDelay Specifies how long (in seconds) the auto-scaling is triggered when the cpu load exceeds the number of cores in the current specifications.
     * @param integer $AutoScaleDownDelay Specifies how long (in seconds) the system will wait for the cpu load to be lower than the number of cores in the lower specification before triggering automatic scaling down.
     * @param string $AutoPause Whether to automatically pause. valid values:.
yes
no
     * @param string $AutoScaleUp Specifies whether the cluster allows upward scaling. valid values: <li>yes</li><li>no</li>.
     * @param string $AutoScaleDown Whether the cluster is allowed to scale down. valid values: <li>yes</li><li>no</li>.
     * @param string $RequestId The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
     */
    function __construct()
    {

    }

    /**
     * For internal only. DO NOT USE IT.
     */
    public function deserialize($param)
    {
        if ($param === null) {
            return;
        }
        if (array_key_exists("AutoPauseDelay",$param) and $param["AutoPauseDelay"] !== null) {
            $this->AutoPauseDelay = $param["AutoPauseDelay"];
        }

        if (array_key_exists("AutoScaleUpDelay",$param) and $param["AutoScaleUpDelay"] !== null) {
            $this->AutoScaleUpDelay = $param["AutoScaleUpDelay"];
        }

        if (array_key_exists("AutoScaleDownDelay",$param) and $param["AutoScaleDownDelay"] !== null) {
            $this->AutoScaleDownDelay = $param["AutoScaleDownDelay"];
        }

        if (array_key_exists("AutoPause",$param) and $param["AutoPause"] !== null) {
            $this->AutoPause = $param["AutoPause"];
        }

        if (array_key_exists("AutoScaleUp",$param) and $param["AutoScaleUp"] !== null) {
            $this->AutoScaleUp = $param["AutoScaleUp"];
        }

        if (array_key_exists("AutoScaleDown",$param) and $param["AutoScaleDown"] !== null) {
            $this->AutoScaleDown = $param["AutoScaleDown"];
        }

        if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) {
            $this->RequestId = $param["RequestId"];
        }
    }
}
